Generating error traces from verification-condition counterexamples
نویسندگان
چکیده
A technique for finding errors in computer programs is to translate a given program and its correctness criteria into a logical formula in mathematics and then let an automatic theorem prover check the validity of the formula. This approach gives the tool designer much flexibility in which conditions are to be checked, and the technique can reason about as many aspects of the given program as the underlying theorem prover allows. This paper describes a method for reconstructing, from the theorem prover’s mathematical output, error traces that lead to the program errors that the theorem prover discovers.
منابع مشابه
Verification Condition Splitting
In a traditional approach to program verification, the correctness of each procedure of a given program is encoded as a logical formula called the verification condition. It is then up to a theorem prover, like an automatic SMT solver, to analyze the verification condition in the attempt to either establish the validity of the formula (thus proving the correct correct) or find counterexamples (...
متن کاملProperty Inference from Program Executions
Software verification techniques require properties that define the intended behavior of a system be specified. Generating such properties is often very difficult and serves as an impediment to the adoption of verification techniques. Techniques that leverage program executions to infer these properties are a promising avenue for automatically generating these properties. In this paper, we prop...
متن کاملAn Interface Aware Guided Search Method for Error-trace Justification in Large Protocols
Many complex concurrent protocols that cannot be formally verified due to state explosion can often be formally verified by initially creating a collection of abstractions (overapproximations), and subsequently refining the overapproximated protocol in response to spurious counterexample traces. Such an approach crucially depends on the ability to check whether a given error trace in the abstra...
متن کاملAutomatically Generating Counterexamples to Naive Free Theorems
Disproof can be as important as proof in studying programs and programming languages. In particular, a somehow conditioned statement about program behavior is sometimes best understood and explored by trying to exhibit a falsifying example in the absence of a condition in question. Automation is as desirable for such falsification as it is for verification tasks. We develop formal and implement...
متن کاملDesign Verification Based on All Counterexamples
Today up to 80% of the design costs for integrated circuits are due to verification therefore verification is an important part of design. Formal verification is the process of checking whether a design satisfies some requirements (properties).Verification tools guarantee completeness if properties for a design are proven. In the other case usually one counterexample produced. Then debugging ha...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Sci. Comput. Program.
دوره 55 شماره
صفحات -
تاریخ انتشار 2005